/**
 * @param {string} product: bind(隐藏按钮类型) float(浮动式) popup(弹出式) custom(与popup类似, 但是可以自定义弹出区域)
 *  文档地址https://docs.geetest.com/sensebot/apirefer/api/web
 */
import { getRegisterCodeSafe } from '@/api/user.js' // 接口 获取极验签名
export function captchaFun(product = 'bind', captchaBox) {
  return new Promise((resolve, reject) => {
    getRegisterCodeSafe().then(({ data = {}}) => {
      window.initGeetest({
        gt: data.gt,
        challenge: data.challenge,
        offline: !data.normalFlag,
        new_captcha: data.newCaptcha,
        product
      }, function(captchaObj) {
        if (captchaBox) { // product 为非 'bind' 类型时 必须传入captchaBox
          captchaObj.appendTo(captchaBox)
        }
        captchaObj.onReady(() => {
          resolve(captchaObj) // 返回初始化成功对象
        }).onError(() => {
          captchaObj.reset()
          reject()
        })
      })
    })
  })
}
